NestJS 核心概念回顾
三层架构
NestJS 的核心架构遵循经典的三层模式:
| 层级 | 对应概念 | 职责 |
|---|---|---|
| Controller(控制器) | 路由层 | 接收请求、返回响应、定义 API 路径 |
| Service(服务) | 逻辑层 | 处理业务逻辑、实现逻辑分层、保证接口稳定可扩展 |
| Repository(数据访问) | 数据层 | 通过 TypeORM 对接 MySQL,持久化用户/菜单/权限数据 |
请求处理流程
一个完整的后端请求处理链路:
客户端请求 → 数据校验 → 认证(Authentication) → 鉴权(Authorization) → 路由匹配 → Controller → Service → Repository → 数据库
text
数据校验:拦截非法数据,防止 SQL 注入、脏数据(如期望数字但收到字符串、期望日期但收到非日期字符串)。
认证 vs 鉴权:
- 认证(Authentication):验证用户身份,相当于拿到公园门票
- 鉴权(Authorization):验证用户权限,相当于凭房卡进入特定房间
- 两者是不同概念,认证通过后还需鉴权才能访问特定资源
接口服务的核心关注点
- 稳定性:通过数据校验、异常处理保证服务稳定
- 扩展性:通过 Service 层的逻辑分层,将可抽离的逻辑独立管理
- 安全性:认证 + 鉴权 + 数据校验三重保障
- 可维护性:Controller 只管路由,Service 只管逻辑,Repository 只管数据
前端同学需要理解的关键点
对于前端开发者来说,理解后端接口服务的内部流程有助于:
- 设计合理的 API 请求结构和参数
- 理解错误码的含义(400 校验失败、401 未认证、403 无权限、500 服务异常)
- 在前后端联调时快速定位问题所在层级
↑